Systems and methods for virtual programming by artificial intelligence

ABSTRACT

Systems and methods of generating a computer program using artificial intelligence module include generating logic programming by analyzing natural language in sample input data received from an external source, the sample input data resulting in a known output. Select input data, which includes select natural language or a coding instruction including the select natural language, is received. Context data is generated by processing the select natural language. The logic programming based on the context data is selected. A computing instruction is determined for the select input data using the logic programming, and the computer program including the computing instruction is generated.

PRIORITY APPLICATION

This non-provisional application claims the benefit of priority of U.S.Provisional Patent Application No. 62/810,103, filed on Feb. 25, 2019,which is hereby incorporated herein by reference in its entirety.

DEFINITIONS/ABBREVIATIONS

The definitions and abbreviations used herein are provided as follows:

“OPENNLP” is the APACHE OPENNLP library, which is a machine learningbased toolkit for the processing of natural language text. It supportsthe most common NLP tasks, such as language detection, tokenization,sentence segmentation, part-of-speech tagging, named entity extraction,chunking, parsing and reference resolution.

“TODO” is a computer programming tag placed in a comment to indicatethat something more is required. TODO is a comment rather than akeyword.

“Neural Network” is either a system software or hardware that workssimilar to the tasks performed by neurons of human brain. Neuralnetworks include various technologies like deep learning, and machinelearning as a part of artificial intelligence (“AI”).

“NLU” stands for Natural Language Understanding.

“Metadata” is data that provides information about other data (i.e.,data about data). The metadata as used herein includes descriptivemetadata, structural metadata, administrative metadata, referencemetadata and statistical metadata.

“Repository”, in software development, is a central file storagelocation.

“Natural language processing” (or “NLP” is a subfield of linguistics,computer science, information engineering, and artificial intelligenceconcerned with the interactions between computers and human (natural)languages, in particular how to program computers to process and analyzelarge amounts of natural language data.

“Sentiment analysis”, also referred to as opinion mining or emotion AI,refers to the use of natural language processing, text analysis,computational linguistics, and biometrics to systematically identify,extract, quantify, and study affective states and subjectiveinformation.

FIELD OF INVENTION

Embodiments of the present invention are generally directed to systemsand methods for generating a computer program using artificialintelligence.

BACKGROUND

In a typical software development process, a software developer startswith an understanding of requirements for the software to be developed.Based on the requirements, the software developer creates the software,and implements the software to achieve desired functionality. Insoftware development, the software developer can rely on similarimplementations and/or one's own knowledge.

Generally, the goal of a software development process is to create anoutput programming language based on the requirements, which are usuallywritten in a natural human communication language (such as English,French, Hindi, German or any other language). Upon gaining anunderstanding of the intended meaning of the text, the softwaredeveloper creates logic in a programming language, so that the outputprogramming language achieves an expected result and/or functionality.The process is usually performed manually, and therefore, can berepetitive and time consuming. Furthermore, additional time and/oreffort is spent by the software developer to understand a referencelogic in one programming language and develop an equivalent logic inanother programming language.

SUMMARY

In an embodiment, a method of generating a computer program usingartificial intelligence includes generating, at an artificialintelligence module, logic programming by analyzing natural language insample input data received from an external source, the sample inputdata resulting in a known output; receiving select input data, theselect input data including select natural language or a codinginstruction including the select natural language; generating contextdata by processing, using an artificial neural network of the artificialintelligence module, the select natural language; selecting the logicprogramming based on the context data; determining, at the artificialintelligence module, a computing instruction for the select input datausing the logic programming; and generating the computer program, thecomputer program including the computing instruction.

In an embodiment, the method further comprises storing the logicprogramming in a knowledge repository; receiving process input data, theprocess input data being a result of the computing instruction, and theprocess input data including the select natural language or the codinginstruction including the select natural language; generating processcontext data by processing, at the artificial intelligence module, theselect natural language in the process input data; generating additionallogic programming based on a comparison between the process context dataand the context data; and storing the additional logic programming inthe knowledge repository.

In an embodiment, the method further comprises storing the logicprogramming in a knowledge repository; and receiving subsequent inputdata, the subsequent input data including the select natural language orthe coding instruction including the select natural language, and thesubsequent input data being different from the select input data;generating subsequent context data by processing, at the artificialintelligence module, the select natural language in the subsequent inputdata; retrieving the logic programming from the knowledge repositorybased on a comparison between the subsequent context data and thecontext data; and determining, at the artificial intelligence module, asubsequent computing instruction for the subsequent input data using thelogic programming; and updating the computer program to include thesubsequent computing instruction.

In an embodiment, the select input data is encoded in a first logicprogramming language, and the logic programming is encoded in a secondlogic programming language, the second logic programming language beingdifferent than the first logic programming language.

In an embodiment, the generating of the context data includes creatingmetadata for the select input data by performing, using a naturallanguage processing module, at least one of sentiment analysis, sentencerecognition, relationship extraction or language detection; andgenerating the context data using the metadata.

In an embodiment, the method further comprises storing the logicprogramming in a knowledge repository; receiving initial input data, theinitial input data including natural language or a coding instructionincluding the natural language; generating context data by processing,at the artificial intelligence module, the natural language; identifyingselect data in the context data, the select data including the naturallanguage or the coding instruction including the natural language;generating select context data by processing, at the artificialintelligence module, the natural language in the select data;generating, at the artificial intelligence module, select logicprogramming for the select context data, the generating of the selectlogic programming being based on the logic programming; determining, atthe artificial intelligence module, a select computing instruction forthe select data using the select logic programming; and generating aselect computer program, the select computer program including theselect computing instruction.

In an embodiment, the method further comprises storing the select logicprogramming in the knowledge repository; and receiving subsequent inputdata, the subsequent input data including the natural language or thecoding instruction including the natural language, and the subsequentinput data being different from the select data; generating subsequentcontext data by processing, at the artificial intelligence module, thenatural language in the subsequent input data; retrieving the selectlogic programming from the knowledge repository based on a comparisonbetween the subsequent context data and the select context data; anddetermining, at the artificial intelligence module, a subsequentcomputing instruction for the subsequent input data using the selectlogic programming; and updating the select computer program to includethe subsequent computing instruction.

In an embodiment, the initial input data and the select data are encodedin a first logic programming language, and the logic programming isencoded in a second logic programming language, the second logicprogramming language being different than the first logic programminglanguage.

In an embodiment, a system for generating a computer program usingartificial intelligence includes a processor; and a memory storing aprogram for execution by the processor, the program includinginstructions for generating, at an artificial intelligence module, logicprogramming by analyzing natural language in sample input data receivedfrom an external source, the sample input data resulting in a knownoutput; receiving select input data, the select input data includingselect natural language or a coding instruction including the selectnatural language; generating context data by processing, at theartificial intelligence module, the select natural language; selectingthe logic programming based on the context data; determining, at theartificial intelligence module, a computing instruction for the selectinput data using the logic programming; and generating the computerprogram, the computer program including the computing instruction.

In an embodiment, the program includes instructions for storing thelogic programming in a knowledge repository; receiving process inputdata, the process input data being a result of the computinginstruction, and the process input data including the select naturallanguage or the coding instruction including the select naturallanguage; generating process context data by processing, at theartificial intelligence module, the select natural language in theprocess input data; generating additional logic programming based on acomparison between the process context data and the context data; andstoring the additional logic programming in the knowledge repository.

In an embodiment, the program includes instructions for storing thelogic programming in a knowledge repository; and receiving subsequentinput data, the subsequent input data including the select naturallanguage or the coding instruction including the select naturallanguage, and the subsequent input data being different from the selectinput data; generating subsequent context data by processing, at theartificial intelligence module, the select natural language in thesubsequent input data; retrieving the logic programming from theknowledge repository based on a comparison between the subsequentcontext data and the context data; and determining, at the artificialintelligence module, a subsequent computing instruction for thesubsequent input data using the logic programming; and updating thecomputer program to include the subsequent computing instruction.

In an embodiment, the select input data is encoded in a first logicprogramming language, and the logic programming is encoded in a secondlogic programming language, the second logic programming language beingdifferent than the first logic programming language.

In an embodiment, the generating of the select context data includescreating metadata for the select input data by performing, using anatural language processing module, at least one of sentiment analysis,sentence recognition, relationship extraction or language detection; andgenerating the context data using the metadata.

In an embodiment, the program includes instructions for storing thelogic programming in a knowledge repository; receiving initial inputdata, the initial input data including natural language or a codinginstruction including the natural language; generating context data byprocessing, at an the artificial intelligence module, the naturallanguage; identifying select data in the context data, the select dataincluding the natural language or the instruction including the naturallanguage; generating select context data by processing, at theartificial intelligence module, the natural language in the select data;generating, at the artificial intelligence module, select logicprogramming for the select context data, the generating of the selectlogic programming being based on the logic programming; determining, atthe artificial intelligence module, a select computing instruction forthe select data using the select logic programming; and generating aselect computer program, the select computer program including theselect computing instruction.

In an embodiment, the instructions further comprise storing the selectlogic programming in the knowledge repository; and receiving subsequentinput data, the subsequent input data including the natural language orthe coding instruction including the natural language, and thesubsequent input data being different from the select data; generatingsubsequent context data by processing, at the artificial intelligencemodule, the natural language in the subsequent input data; retrievingthe select logic programming from the knowledge repository based on acomparison between the subsequent context data and the select contextdata; and determining, at the artificial intelligence module, asubsequent computing instruction for the subsequent input data using theselect logic programming; and updating the select computer program toinclude the subsequent computing instruction.

In an embodiment, the initial input data and the select data are encodedin a first logic programming language, and the logic programming isencoded in a second logic programming language, the second logicprogramming language being different than the first logic programminglanguage.

In an embodiment, a non-transitory computer readable medium havinginstructions embodied thereon that, when executed by a processor, causethe processor to perform operations including generating, at anartificial intelligence module, logic programming by analyzing naturallanguage in sample input data received from an external source, thesample input data resulting in a known output; receiving select inputdata, the select input data including select natural language or acoding instruction including the select natural language; generatingcontext data by processing, at the artificial intelligence module, theselect natural language; selecting the logic programming based on thecontext data; determining, at the artificial intelligence module, acomputing instruction for the select input data using the logicprogramming; and generating the computer program, the computer programincluding the computing instruction.

In an embodiment, the operations further comprise storing the logicprogramming in a knowledge repository; receiving process input data, theprocess input data being a result of the computing instruction, and theprocess input data including the select natural language or the codinginstruction including the select natural language; generating processcontext data by processing, at the artificial intelligence module, theselect natural language in the process input data; generating additionallogic programming based on a comparison between the process context dataand the context data; and storing the additional logic programming inthe knowledge repository.

In an embodiment, the operations further comprise storing the logicprogramming in a knowledge repository (a “repository”, in softwaredevelopment, is a central file storage location); and receivingsubsequent input data, the subsequent input data including the selectnatural language or the coding instruction including the select naturallanguage, and the subsequent input data being different from the selectinput data; generating subsequent context data by processing, at theartificial intelligence module, the select natural language in thesubsequent input data; retrieving the logic programming from theknowledge repository based on a comparison between the subsequentcontext data and the context data; and determining, at the artificialintelligence module, a subsequent computing instruction for thesubsequent input data using the logic programming; and updating thecomputer program to include the subsequent computing instruction.

In an embodiment, the select input data is encoded in a first logicprogramming language, and the logic programming is encoded in a secondlogic programming language, the second logic programming language beingdifferent than the first logic programming language.

In an embodiment, the generating of the context data includes creatingmetadata for the select input data by performing, using a naturallanguage processing module, at least one of sentiment analysis, sentencerecognition, relationship extraction or language detection; andgenerating the context data using the metadata.

Metadata” is data that provides information about other data (i.e., dataabout data). The metadata as used herein includes descriptive metadata,structural metadata, administrative metadata, reference metadata andstatistical metadata.

In an embodiment, the operations further include storing the logicprogramming in a knowledge repository; receiving initial input data, theinitial input data including natural language or a coding instructionincluding the natural language; generating context data by processing,at the artificial intelligence module, the natural language; identifyingselect data in the context data, the select data including the naturallanguage or the coding instruction including the natural language;generating select context data by processing, at the artificialintelligence module, the natural language in the select data;generating, at the artificial intelligence module, select logicprogramming for the select context data, the generating of the selectlogic programming being based on the logic programming; determining, atthe artificial intelligence module, a select computing instruction forthe select data using the select logic programming; and generating aselect computer program, the select computer program including theselect computing instruction.

In an embodiment, the operations further comprise storing the logicprogramming in the knowledge repository; and receiving subsequent inputdata, the subsequent input data including the natural language or thecoding instruction including the natural language, and the subsequentinput data being different from the select data; generating subsequentcontext data by processing, at the artificial intelligence module, thenatural language in the subsequent input data; retrieving the selectlogic programming from the knowledge repository based on a comparisonbetween the subsequent context data and the select context data; anddetermining, at the artificial intelligence module, a subsequentcomputing instruction for the subsequent input data using the selectlogic programming; and updating the select computer program to includethe subsequent computing instruction.

In an embodiment, the initial input data and the select data are encodedin a first logic programming language, and the logic programming isencoded in a second logic programming language, the second logicprogramming language being different than the first logic programminglanguage.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will be more clearly understood from the following detaileddescription taken in conjunction with the accompanying drawings. FIGS.1-11 represent non-limiting, embodiments as described herein.

FIG. 1A is a diagram of a system of generating computer programmingusing artificial intelligence in accordance with an embodiment.

FIG. 1B is a flow diagram of input data processing using artificialintelligence in accordance with an embodiment.

FIGS. 2 and 4 are flow diagrams of communication along an inputcommunication channel of an artificial intelligence module in accordancewith embodiments.

FIG. 3 is a neural network in accordance with an embodiment.

FIG. 5 is a flow diagram of learning from a natural human language by anartificial intelligence module in accordance with an embodiment.

FIG. 6 is a flow diagram of supervised learning by an artificialintelligence module in accordance with an embodiment.

FIG. 7 is a flow diagram of unsupervised learning by an artificialintelligence module in accordance with an embodiment.

FIG. 8 is a diagram illustrating artificial intelligence modules workingin isolation in accordance with an embodiment.

FIGS. 9A and 9B are diagrams illustrating artificial intelligencemodules sharing information in accordance with embodiments.

FIG. 10 is a diagram illustrating artificial intelligence modulesfunctioning as a swarm in accordance with an embodiment.

FIG. 11 is a block diagram of an electronic device in accordance with anembodiment.

DETAILED DESCRIPTION

Embodiments of the present invention are generally directed to systemsand methods for generating a computer program using artificialintelligence (“AI”) (also referred to as “machine intelligence”).

AI, as used herein, is machine-learning or intelligence demonstrated byone or more machines to correctly interpret and learn from externaldata, and to use the learned information to achieve a specific goaland/or task through flexible adaptation. AI, as used herein, involvesthe use of algorithms, particularly, AI algorithms that improve bylearning from the external data using heuristics. AI can use any one ofthe following to solve a problem: search and optimization (using swarmintelligence), logic (including first-order logic, propositional logic,fuzzy set theory), probabilistic (using Bayesian networks, Kalmanfilters, Markov models), classifiers, controllers, artificial neuralnetworks (including deep feedforward neural networks), deep recurrentneural networks, and evaluation. The AI functionality can be provided byan AI computer module (referred to herein as “AI Virtual Programmer”).

In an embodiment, the AI Virtual Programmer can be an intelligentvirtual assistant (also referred to as “intelligent personal assistant”)or a software agent that assists an individual (e.g., a softwaredeveloper) with developing code in the various programming languagesbased on specific requirement(s). The AI Virtual Programmer understandsprogramming languages, such as Java, C#, JavaScript, C, C++, Python, VB.NET, R, PHP, MATLAB and other programming languages. The AI VirtualProgrammer also helps an individual with recurring programming tasks.

In an embodiment, the AI Virtual Programmer can operate independently todevelop code in the various programming languages based on specificrequirement(s) without assistance from an external control or anindividual.

The AI Virtual Programmer can read and understand natural humanlanguages such as English, French, Hindi, German or any other language.The AI Virtual Programmer can be programmed to read and understand anynatural human language. By being able to understanding the natural humanlanguage, the AI Virtual Programmer can communicate with, and assist, anindividual in the natural human language. Similarly, the AI VirtualProgrammer can also understand the programming languages and helps anindividual in programming.

The AI virtual programmer can self-learn various programming techniquesthrough supervised or unsupervised learning. As previously mentioned,the AI Virtual Programmer can become more “intelligent” using heuristicsand similar techniques over a period of time, resulting in moreproductive programming over time.

The systems and methods of generating a computer program using the AIVirtual Programmer according to embodiments may be used to efficientlyresolve and perform repetitive programming tasks, by reducing oreliminating the time and/or effort generally spent by an individual tocomplete the same. The AI Virtual Programmer performs programming tasksmore quickly than the individual, thereby significantly improvingproductivity.

FIG. 1A is a diagram of a system of generating computer program usingartificial intelligence in accordance with an embodiment.

Referring to FIG. 1A, a system for generating a computer program usingartificial intelligence includes a processor; and a memory storing aprogram for execution by the processor. The program includesinstructions for generating, at an artificial intelligence (“AI”) module100, logic programming by analyzing natural language in input data 105.Input data 105 can be received from one or more external source(s) 130(e.g., applications and/or tools), input data 105 can be received from acomputing device associated with an individual 110 (e.g., a softwaredeveloper), and/or other input (e.g., coding instructions) from thecomputing device associated with the individual 110. Input data 105 canbe sample input data that results in a known software source codeoutput. Alternatively, input data 105 can be select input data orsubsequent input data that results in an objectionable software sourcecode output, an undesired software source code output or an unknownsoftware source code output. In yet another embodiment, input data 105can be process input data that results in a target or desired softwaresource code output. Input data 105 can include natural human language.

In an embodiment, input data 105 can include of various types of datasuch as natural human language, code fragment, a file, a file path,selected code, a TODO including natural language, a source code defect(e.g., in a test result), a WORD file, a PDF file, a XLS file, an email,an embedded message, or combinations thereof.

Artificial intelligence module 100 can interact with the computingdevice associated with the individual 110, receive input data 105 fromexternal source(s) 130, select external source(s) 130 for providinginput data 105, and/or retrieve input data 105 based on the occurrenceof one or more external events (e.g., a specific task, step orimplementation of a coding instruction). Artificial intelligence module100 can generate and capture input data 105 from one or more externalsource(s) 130 by identifying one or more events that occur at externalsource(s) 130.

There can be various types and quantities of input data 105. Artificialintelligence module 100 can receive input data 105 in one or moreformats and/or programming languages. To receive the input data 105 fromexternal source(s) 130, artificial intelligence module 100 is configuredto communicate with the external source(s) 130. Artificial intelligencemodule 100 can communicate with the external source(s) 130 through anapplication program interface (“API”) provided by the respectiveexternal source(s) 130 (such as JIRA, Bugzilla or a similar softwareapplication) in order to communicate with the external source(s) 130. AnAPI is an interface which performs predefined tasks based on input.

In an embodiment, artificial intelligence module 100 can providerecommendations and/or suggestions for the input data 105. For instance,artificial intelligence module 100 can recommend one or more types offixes/solutions to resolve a given issue with software source code inthe input data 105. Artificial intelligence module 100 can suggest, forinstance, that a portion of the software source code in the input data105 be fixed, or an entirety of the software source code in the inputdata 105 be fixed.

In an embodiment, artificial intelligence module 100 can output asolution for resolving a given issue with the input data 105. Thesolution provided by artificial intelligence module 100 is determinedbased on the nature of the input data 105.

Artificial intelligence module 100 can communicate with the computingdevice associated with the individual 110 and/or external source(s) 130through a communication adaptor/interface 115. Communication adapter 115can communicate with external source(s) 130 (e.g., software applicationssuch as JIRA, Bugzilla or similar applications) through a softwareconnector (e.g., API) provided by the external source(s) 130.Communication adapter 115 receives input data 105, and then transmitsthe input data 105 to an OPENNLP module 120 for further processing. Uponreceiving output data 125, communication adapter 115 transmits theoutput data 125 to individual 110 and/or external source(s) 130.

In an embodiment, a supporting software connector can be installed onartificial intelligence module 100 so that the artificial intelligencemodule 100 can interact with external source(s) 130.

In an embodiment, communication adapter 115 can interact with onlyindividual 110, only external source(s) 130, or both individual 110 andexternal source(s) 130 through different input communication channels.

In an embodiment, the input communication channel can include a userinterface or a chat/messaging box configured to receive codinginstruction(s) from individual 110 and/or input data 105 from externalsource(s) 130 or the computing device associated with the individual110. The input communication channel may include an interactivemessaging box, which appears during an event.

FIG. 1B is a flow diagram of input data processing using artificialintelligence in accordance with an embodiment.

Referring to FIG. 1B, input data is received by the artificialintelligence module from an individual and/or one or more externalsources, at 104. The input data includes natural human language.

In an embodiment, the input data can be a set of program files (referredto as an “inventory”) uploaded to the artificial intelligence modulefrom the one or more external sources and/or the individual. Theinventory can include with multiple data files.

At 114, entity information is extracted from logic programming andnatural human language in the input data by categorizing and identifyingvariables, functions and other components of the input data. Extractionof entity information includes generating context data by processing, atthe artificial intelligence module, the natural human language. Forinstance, in an embodiment, artificial intelligence module extractsentity information from java programs by parsing the input data intoknown java categories by processing the natural human language in theinput data, and identifying variables, functions and other components inthe input data.

At 134, the artificial intelligence module determines the validity ofentity information extracted from the input data, and classifiesrelevant portions of the input data based on intent, thus generatingmetadata for the input data. For instance, generating the metadataincludes generating context data and references from the classifiedportions of the input data.

At 144, the artificial intelligence module generates an output dataresponse by selecting logic programming, using a neural network andinformation from a knowledge repository, for rectifying logicprogramming in the input data based on the context data and references.Generating the output data response includes determining, at theartificial intelligence module, a computing instruction for the inputdata using logic programming in the knowledge repository, and generatingthe computer program, the computer program including the computinginstruction.

In an embodiment, the artificial intelligence module provides the outputdata response to an individual (e.g., a software programmer).

If the output data response generated by the artificial intelligencemodule is not acceptable, the artificial intelligence module stores theinput data in a deferred learning log, at 154.

If the output data response generated by the artificial intelligencemodule is acceptable, the artificial intelligence module modifies thelogic programming in the input data using the output data response, at124.

At 164, the artificial intelligence module generates learned logicprogramming information by “learning” from the generation of the outputdata response, and updates the knowledge repository with the learnedlogic programming information. Artificial intelligence module can alsoupdate the deferred learning log with the learned logic programminginformation in order to resolve stored output data responses that thelearned logic programming information may be applied to.

FIG. 2 is a flow diagram of communication along an input communicationchannel of the artificial intelligence module in accordance with anembodiment.

Referring to FIG. 2, one or more coding or coding-related instructions(or tasks) from an individual (e.g., a software developer) is receivedat a user interface of an artificial intelligence module, at 212. Thecoding instruction(s) can include natural human language, programminglanguage or a combination of the natural human language and theprogramming language. The coding instruction(s) can include a “TODO”computer programing tag, for instance. A TODO is a computer programmingtag placed in a comment to indicate that something more is required. Forinstance, the TODO tag can indicate that a piece of software source codedid not get converted during an automated code conversion process. ATODO tag can be added by an automated programming tool to flag portions(e.g., software source code) of the input data that were notprogrammable during automation and therefore need to be addressed and/orfixed.

Referring to both FIGS. 1 and 2, context data is generated by processingthe natural human language in input data 105 and/or codinginstruction(s) from a computing device associated with an individual110. In an embodiment, communication adapter 115 transmits input data105 and/or coding instruction(s) from the computing device associatedwith the individual 110 to OPENNLP 120 for entity extraction byvalidation and/or parsing, at 214.

At 216, if valid, then OPENNLP 120 generates context data from theinstructions and/or input data 105. If invalid, then a correctionrequest is sent via communication adapter 115 to the computing deviceassociated with the individual 110 and/or external source(s) 130 toprovide valid input data. The correction request can be in the form ofthe natural human language used in input data 105 and/or theinstructions received from the computing device associated with theindividual 110. For example, if input data 105 and/or the instruction(s)are invalid, then communication adapter 115 transmits a validationmessage such as “provide correct the input message format” or “invalidinput message format” to the computing device associated with theindividual 110.

OPENNLP 120 is a natural language parser that can extract sentencestructure and/or phrases from the natural human language in input data105 and/or the coding instruction(s) received from the computing deviceassociated with the individual 110. OPENNLP 120 also supports othernatural language processing (“NLP”) tasks such language detection,tokenization, sentence segmentation, part-of-speech tagging, namedentity extraction, chunking, parsing and reference resolution.

In an embodiment, OPENNLP 120 is configured to analyze input data 105and/or the coding instruction(s) from the computing device associatedwith the individual 110, and generate/build context data, at 218.OPENNLP 120 is configured to resolve structural ambiguity of the naturalhuman language in input data 105, and identify phrases and structure ofphrases in the natural human language.

Based on the analysis of input data 105, OPENNLP 120 generates contextdata by processing input data 105 and/or the coding instruction(s) fromthe computing device associated with the individual 110, and inparticular, based on the natural human language in input data 105 and/orthe coding instruction(s) from the computing device associated with theindividual 110. Context data is data containing a group of similarand/or related references for specific keyword(s). If input data 105 hasbeen received from more than one external source, OPENNLP 120 thenparses input data 105 received from a subsequent external source, afterparsing input data 105 received from a first external source.

In an embodiment, OPENNLP 120 can have contextual awareness built andconfigured in a language processing model. With contextual awareness,OPENNLP 120 extracts one or more contexts from input data 105 and/or thecoding instruction(s) from the computing device associated with theindividual 110.

In an embodiment, OPENNLP 120 is configured to identify differentreferences in input data 105 and/or the coding instruction(s) from thecomputing device associated with the individual 110. Based on theidentified references, OPENNLP 120 is further configured to determine areference chain around the context(s) in an upward direction (i.e.,preceding the context(s)) and a downward direction (i.e., following thecontext(s)). For example, if input data 105 include one or more TODOline(s) in computer business-oriented language (“COBOL”), then OPENNLP120 analyzes input data 105 to identify a specific TODO line, andreferences preceding and following the specific TODO line. OPENNLP 120can analyze the reference chain for the specific TODO line based on thereferences. OPENNLP 120 can analyze additional reference(s) that arereferred to in the references preceding and following the specific TODOline.

Based on the context data provided by OPENNLP 120, artificialintelligence module 100 is configured to understand the natural humanlanguage, and use the natural human language for communication with thecomputing device associated with the individual 110 and/or externalsource(s) 130. Artificial intelligence module 100 is configured tocommunicate using natural human language, for instance, as included ininput data 105 or in any other natural human language.

At 220, OPENNLP 120 transmits the context data, references and/or anatural language processing summary (including language semantics) to aknowledge repository 140 for storage and/or a Decision Model 135 fordetermining a specific action item (e.g., a computing instruction).

Referring back to FIG. 1A, Decision Model 135 is configured to receivethe context data and references from OPENNLP 120. Decision Model 135 isalso configured to receive metadata for the context data and/orreferences. For instance, the metadata can contain information such ashow many different references are involved in input data 105 and/or thecoding instruction(s) from the computing device associated with theindividual 110, the relation of specific keywords in input data 105and/or the coding instruction(s) from the computing device associatedwith the individual 110, how specific keywords are related with areference (within and/or excluded from input data 105 and/or the codinginstruction(s) from the computing device associated with the individual110).

Metadata” is data that provides information about other data (i.e., dataabout data). The metadata as used herein includes descriptive metadata,structural metadata, administrative metadata, reference metadata andstatistical metadata.

The information received from OPENNLP 120 can contain differentcontexts. The information received from OPENNLP 120 can include, forinstance, domain, natural language, technology related informationand/or programming language information. Decision Model 135 isconfigured to arrange input data 105 in a logical manner, and select anappropriate action or logic programming for resolving the given issuewith software source code in the input data 105 or the codinginstruction received from the computing device associated with theindividual 110.

In an embodiment, using (i) training data received from knowledgerepository 140 and (ii) the context data, the references, the naturallanguage processing summary and/or the metadata received from OPENNLP120, Decision Model 135 is configured to search for logic programmingarea(s) that will likely resolve the given issue. The training datareceived from knowledge repository 140 includes training data of themultiple programming languages. Knowledge repository 140 also includesinformation associated with the natural human language communication,languages semantics, programming languages references, domain specificcontexts, programming language contextual trained data, metadata andother references (such as references required for the communication andto make decisions).

Upon identifying the logic programming area(s), Decision Model 135transmits the logic programming area(s) to a neural network 145 orAction Plan API 150, along with the context data, the references, thenatural language processing summary and/or the metadata received fromOPENNLP 120.

In an embodiment, neural network 145 determines one or more probablesolutions by mapping information (such as logic programming areas, thecontext data, the references, the natural language processing summaryand/or the metadata) in a data signal to the probable solution(s).Neural network 145 (also referred to as an “artificial neural network”)provides a “learning” functionality to artificial intelligence module100 by classifying, grouping and/or extracting features usingalgorithms. Using neural network 145, artificial intelligence module 100is configured to learn how to perform task(s) from examples and/orpreviously-learned information (e.g., computing instruction(s) or logicprogramming). Using neural network 145, artificial intelligence module100 is configured to learn without being programmed with a task-specificrule.

FIG. 3 is a neural network in accordance with an embodiment.

Referring to FIG. 3, neural network 345 includes one or more tiers orlayers 313. Tiers 313 can include an input layer 313A, an output layer313N, and, optionally, one or more hidden layers 313B. From one or morecomponents 316 (e.g., a computing device associated with an individual110 and/or external source(s) 130), input layer 313A is configured toreceive various forms of information that neural network 345 attempts tolearn about, recognize or otherwise process. Output layer 313N isconfigured to output one or more probable solutions 319 to theinformation learned by neural network 345. Hidden layer(s) 313B, whichare between input layer 313A and output layer 313N, are configured tolearn about, recognize or otherwise process information received frominput layer 313A.

An input layer of a neural network is composed of artificial inputneurons, and receives (or retrieves) initial data into the AI system forfurther processing by subsequent layers of artificial neurons. The inputlayer is the very beginning of the workflow for the artificial neuralnetwork.

An output layer of a neural network is the last layer of artificialneurons that produces given outputs for the program.

Each tier 313 contains neurons 321 (also referred to as “artificialneurons”) that receive input data signal(s) from neurons 321 in apreceding tier, apply an algorithm function to the input data signal(s),and generate an output data signal. The output data signal may betransmitted to neurons 321 in subsequent tier via dendrites 324.

Neurons (or “artificial neurons”) as used herein are mathematicalfunctions modeled similar to biological neurons of a biological neuralnetwork. Generally, in a neuron, each input of data is separatelyweighted, and the sum is passed through a non-linear function known asan activation function or transfer function.

In an embodiment, input layer 313A contains neurons 321 that areconfigured to receive an input data signal (containing logic programmingareas, the context data, the references, the natural language processingsummary and/or the metadata) from Decision Model 135, apply an algorithmfunction to the input data signal to generate a modified data signal,and transmit the modified data signal to either hidden layer(s) 313B oroutput layer 313N. The data signal received by input layer 313A can begenerated in response to input data received from one or more components316 via OPENNLP 120 and Decision Model 135.

Decision Model is an intellectual template for perceiving, organizing,and managing the business logic behind a business decision.

In an embodiment, hidden layer(s) 313B contains neurons 321 that areconfigured to receive an input data signal from input layer 313A, applyan algorithm function to the input data signal to generate a modifieddata signal, and transmit the modified data signal to output layer 313N.

In machine learning, an algorithm function is a set of rules orinstructions given to an AI module, a neural network, system or machineto help it learn on its own.

In an embodiment, hidden layer(s) 313B can collectively form a majorityof neural network 345. However, there is no limit on the number ofhidden layer(s) 313B.

In an embodiment, neural network 345 can adjust one or more hiddenlayer(s) 313B if the modified data signal does not, or alternatively,would not, match an expected output. For instance, as the complexity inthe relationship between the input data and the desired outputincreases, the number of the processing hidden layers can also beincreased.

In an embodiment, output layer 313N contains neurons 321 that areconfigured to receive an input data signal from input layer 313A orhidden layer(s) 313B, and output one or more probable solutions 319 forresponding to the information contained in the data signal.

In an embodiment, neural network 345 includes only input layer 313A andoutput layer 313N, and no hidden layers 313B.

In an embodiment, each neuron 321 can have a weight indicative ofrelative importance of the algorithm functionality of neuron 321 tolearning how to map the input data to the output data. Alternatively, orin addition, each dendrite 324 can have a weight indicative of relativeimportance of the algorithm functionality of one or more correspondingneurons 321 to a learning model of how to map the input data to theoutput data. The weight can adjust as learning proceeds to improveaccuracy of determining probable solutions 319.

In an embodiment, neural network 345 can use a backpropagation algorithmto adjust the weight to compensate for errors found during the learning.The backpropagation algorithm calculates a gradient of a loss functionassociated with a given state with respect to the weight.

A backpropagation algorithm is an algorithm used to calculatederivatives quickly. Artificial neural networks use the backpropagationalgorithm as a learning algorithm to compute a gradient descent withrespect to weights.

In an embodiment, neural network 345 can use a sigmoid function tointroduce nonlinearity in the learning model. Neural network 345 cancompute a linear combination of input data signals, and apply thesigmoid function to the result.

A sigmoid function is generally used in an artificial neural network tointroduce nonlinearity in a model. A neural network element computes alinear combination of its input signals, and applies a sigmoid functionto the result. Sigmoid functions including the logistic function and thehyperbolic tangent function can be used as an activation function of anartificial neuron. The activation function defines the output of aneuron given input or set of inputs.

Probable solutions 319 output by neural network 345 can have differentprobabilities. One or more solutions 326 with the most favorableprobabilities can be selected, and transmitted to Decision Model 135 andAction Plan API 150 to generate an action plan.

Referring back to FIG. 1A, Action Plan API 150 includes various programs(e.g., Java) available to generate the action plan by taking selectedsolutions from Decision Model 135. Using the programs in Action Plan API150, Action Plan API 150 takes selected solutions from Decision Model135, and refers to the metadata information in knowledge repository 140to generate the action plan. The action plan is then transmitted to anoutput processing unit (not shown) for further processing. A“repository”, in software development, is a central file storagelocation.

The output processing unit receives the action plan from Action Plan API150, and formats and packages the action plan as output data 125. Outputdata 125 is then transferred to communication adaptor/interface 115where it is sent to individual 110 and/or external source(s) 130.

In an exemplary embodiment, artificial intelligence module 100 receivesthe following TODO line as input data 105 coded in COBOL: //TODO: MOVEPOB1-OP2 TO PHV-POB1-OP2. OPENNLP 120 reads and interprets the TODO lineas follows:

“MOVE”—a MOVE instruction in COBOL,

“POB1-OP2”−a source from where the movement is happening,

“TO”—a MOVE statement format which contains source and target, and

“PHV-POB1-OP2”—target where source has to be moved.

COBOL is a compiled English-like computer programming language designedfor business use. COBOL is procedural and object-oriented. COBOL isprimarily used in business, finance, and administrative systems forcompanies and governments.

A MOVE statement is used to assign a value to a variable from anothervariable or literal.

At OPENNLP 120, artificial intelligence module 100 scans the COBOLlanguage in input data 105 for references to the “POB1-OP2” source tounderstand the source element in input data 105. Artificial intelligencemodule 100 generates context data and references by determining inputpreceding the “POB1-OP2” source, input subsequent to the “POB1-OP2”source, and/or any input associated with the “POB1-OP2” source. Bydetermining the preceding references, the subsequent references and theassociated references, action items are identified. The process isrepeated for the “PHV-POB1-OP2” target. Artificial intelligence module100 sends all the context data and reference information obtained atOPENNLP 120 to Decision Model 135. Referencing the reference metadatafrom knowledge repository 140 and using neural network 145, DecisionModel 135 determines one or more suitable solutions. Using the suitablesolution(s), Action Plan API 150 determines an action plan that includessoftware source code for resolving the TODO fix. An output processingunit generates output data 125 by modifying input data 105 using thesoftware source code, and transmits output data 125 to externalsource(s) 130 and/or individual 110.

FIG. 4 is a flow diagram of communication along an input communicationchannel in accordance with another embodiment.

Referring to FIG. 4, a set of program files (referred to as an“inventory”) is uploaded from one or more external sources or anindividual, at 414. An inventory is a group of related programs. Theinventory includes multiple data files.

At 416, artificial intelligence module loads, and processes, each datafile in the inventory. Each data file is processed as discussed at steps214, 216 and 218 of FIG. 2.

In an embodiment, the data files are loaded and processed one at a time.

At 418, artificial intelligence module presents one or more suggestedsolution(s) to the individual. The one or more suggested solution(s) aredetermined using a neural network and information from a knowledgerepository.

If the suggested solution is not acceptable, artificial intelligencemodule stores the data file in a deferred learning log, at 422. Thedeferred learning log is available for review to a user. The deferredlearning log includes detailed information about events that occur whenthe deferred learning log is generated. The detailed information caninclude information such as skill details, skill-variation, type ofinput used, type of output generated, what is the exact input, inputparameters used for skill to generate the output and so on so forth. Thedetailed information can also include time, place and user information.Information about the generated output and the expected output, and anyother suggestion entered by the user and other related information.

A learning log is a personalized learning resource for an artificialintelligence system.

Input parameters are the parameters that are transmitted to theartificial intelligence system and are used to generate programminglogic.

In an embodiment, artificial intelligence module automatically generatesa deferred learning log report including information about any storeddeferred learning logs that need to be revisited and reviewed by theuser.

If the suggested solution is acceptable, artificial intelligence modulemodifies the data file and provides a status update to the user througha user interface (for example, through chat box), at 424.

At 426, artificial intelligence module provides a modified datainventory to the user and/or the external sources.

FIG. 5 is a flow diagram of learning from a natural human language by anartificial intelligence module in accordance with an embodiment.

A flow diagram is a collective term for a diagram representing a flow orset of dynamic relationships in a system.

Referring to FIG. 5, an OPENNLP of an artificial intelligence moduleparses natural human language in input data using natural languageprocessing (NLP), at 510.

Using natural language processing and understanding applicationprogramming interface (API), the OPENNLP is configured to understand andinterpret written human language and/or verbal human language. For thepurpose of interpreting and understanding the natural human language,the artificial intelligence module is provided with pre-trained data ofvarious conversations, speeches of the natural language from a knowledgerepository. The NLP function performs tasks such as sentiment analysis,sentence recognition, and relationship extraction.

At 520, using the parsed natural human language and the learned logicprogramming information provided from a knowledge repository, theOPENNLP analyzes programming language in the input data. From analysisof the programming language in the input data, the OPENNLP extracts theintent of the natural human language using data from a knowledgerepository.

Based on the analysis of the programming language, the OPENNLP generatesa learning context file including context data and references, at 530.

At 540, the OPENNLP provides a response in a natural human languagebased on the learning context file. Then, the OPENNLP transmits thelearning context file to a Decision Model and the knowledge repository.

From the learning context file from the OPENNLP and the selectedsolutions from a neural network, the knowledge repository “learns” andgenerates learned logic programming information. The learned logicprogramming information is stored in the knowledge repository.

FIG. 6 is a flow diagram of supervised learning by an artificialintelligence module in accordance with an embodiment.

According to embodiments, supervised learning 600 by the artificialintelligence module can include learning based on a response generatedfor a task request for initial logic programming (pathway A), and/orlearning based on a response generated for a task request for deferredlogic programming with fixes (pathway B).

Pathway A: After parsing with OPENNLP and NLU (discussed in FIG. 5), aninitial context information is created. Then, referring to FIG. 6, inpathway A where a task is requested for initial logic programming (forinstance, a TODO tag in a converted program), a neural network receivesthe converted program(s) at 620A, and scans and creates metadata for theconverted program(s) at 630A. The neural network builds a full contextfor output data for target program(s) at 640A, and transmits the fullcontext for the target program(s) to a knowledge repository for storageat 660A.

Pathway B: After parsing with OPENNLP and NLU (discussed in FIG. 5), aninitial context information is created. In pathway B where a task isrequested for deferring logic programming (for instance, a TODO tag in aconverted program including previous fixes), the neural network receivesthe converted program(s) at 620B, and scans and creates metadata for theconverted program(s) at 630B. The neural network builds a second fullcontext for output data for target program(s) at 640B, and identifiesthe changed context at 650. At 660B, the neural network transmits thesecond full context to the knowledge repository for storage with thefirst full context previously stored in the knowledge repository.

In an embodiment, the knowledge repository stores the original problemdataset and corresponding fixes (referred to as a “training data set”),or provides a solution for the problem if available in the knowledgerepository. The changed dataset with the corresponding solution,collectively as a training data set, is available for furtherunsupervised learnings. Subsequent problems, which require a samesolution, can be addressed based on the previously stored training dataset in the knowledge repository.

In an embodiment, the first stage in an artificial intelligence moduleis an initial supervised learning. In the supervised learning, eachtraining data set consists of an input data object and an expectedoutput data. The training data consists of one or more training datasets.

The following is an example of supervised learning according to anembodiment.

EXAMPLE 1 Supervised Learning

First, a COBOL file having multiple TODO tag is given as input data toan artificial intelligence module, along with reference metadata for theexpected output. The artificial intelligence module identifies theprogram structure of the COBOL file. References preceding and subsequentto the TODO fixing lines are identified from metadata. The expectedoutput for each TODO fixing line is stored in a knowledge repositoryalong with the references for the respective TODO.

Using the COBOL file, the neural network is configured and adjusted toget appropriate output. The configured and adjusted neural network isavailable for subsequent input data having one or more of the same TODOtags.

Having a variety of input data and identifying the metadata referencesfor the input data are important to achieve maximum accuracy in theneural network output. Initially, for the first few sets of input data,this may be manual process and repeated for rest of the training data totrain the AI virtual programmer.

If training data is available in the knowledge repository, the trainingdata can be used as reference metadata in the artificial intelligencemodule. Therefore, if new input data is receive, the artificialintelligence module performs a forward search and a backward search ofthe input data to extract context data. Using the reference metadata,the system can automatically determine the most suitable solution forthe context data. With the extracted context data, the artificialintelligence module feeds the context data and input data to apre-trained and tuned neural network. The artificial intelligence moduleadjusts the weightage and links in the neural network at runtime toproduce an accurate output for an action plan.

In an embodiment, the neural network is configured based on the skillsof the artificial intelligence module. For different skills anddifferent variation, various neural network configurations can be used.For instance, for the TODO FIX-COBOL to Java variation skill, theartificial intelligence module uses a neural network having 4-6 hiddenlayers, which determines the type and variation of the TODO task andthen produces the output data. The output data provides informationabout type of TODO, variation of the TODO and reference metadatagenerated by the neural network. The neural network having 4-6 hiddenlayers can use back-propagation along with a sigmoid function.Back-propagation is a method used in neural networks to calculate agradient needed in the calculation of the weights to be used in theneural network. A sigmoid function is used in neural networks tointroduce nonlinearity in the model. A neural network element computes alinear combination of input signals, and applies a sigmoid function tothe result.

FIG. 7 is a flow diagram of unsupervised learning by an artificialintelligence module in accordance with an embodiment.

According to embodiments, unsupervised learning 700 by the artificialintelligence module can include learning based on an output dataresponse generated for a task request for logic programming with similarcontext (pathway C), and/or learning based on a task request for logicprogramming with new context (pathway D).

Pathway C: After parsing the input data using an Open NLP and NLU (asdiscussed in FIG. 5), references preceding and subsequent to theproblematic logic programming are identified. References such as a typeof action performed before the problematic logic programming and a typeof action are performed after the problematic logic programming areidentified. Referring to FIG. 7, in pathway C where a task is requestedfor logic programming with similar context, a neural network receivesthe converted program(s) based on the configuration of the neuralnetwork, at 710C. The neural network scans and creates metadata for theconverted program(s) at 720C. At 730C, the neutral network builds a fullcontext for output data for the target program(s), and, at 740C, theneural network finds context reference(s) from a knowledge repository.The neural network updates the converted program(s) using the previousfixes, at 750C, and transmits the context references and the convertedprogram(s) to the knowledge repository for storage, at 760C.

For instance, in the case where the input data is converted programswith similar context, the neural network creates metadata, and builds afull context for the output data. The neural networks then findsexisting context reference(s) from the knowledge repository, and updatesthe converted programs using the previous fixes. The neural network thenupdates the knowledge repository with the converted program(s) and thecontext reference(s).

Pathway D: In pathway D where a task is requested for logic programmingwith new context, the input data is parsed (as discussed in FIG. 5), andreferences preceding and subsequent to the problematic logic programmingare identified. At 710D and 720D, the converted programs with the newcontext are received and scanned by a neural network to generaterun-time metadata. The neural network builds a full context for outputdata for target program(s), at 730D. The neural network searches for anew context without any reference(s) at 740D. If a new context without areference is found, then the neural network updates deferred learninglog(s) for new scenarios, at 750D. The neural network transmits the newcontext and the converted program(s) to the knowledge repository forstorage, at 760D.

For instance, in case where the input data is converted programs withnew context, the neural network creates metadata, and builds a fullcontext for output data for the target program(s). If new contextwithout any references is found, the neural network updates deferredlearning log(s) for the new scenario identified. The neural networktransmits the detail information about newly identified scenario to theknowledge repository for storage.

An artificial intelligence module according to an embodiment exhibitsswarm intelligence with one or more other artificial intelligencemodule. Swarm intelligence is a collective behavior of multipledecentralized multiple artificial intelligence modules. The multipleartificial intelligence modules are self-organized and in a group. Theartificial intelligence modules are configured to work as a group andrefer to a collective knowledge repository. Thus, a single artificialintelligence module is configured to access the collective knowledgerepository in addition to its own centralized knowledge repository. Withswarm intelligence, a solution is available to all of the artificialintelligence module in the group to amplify the learning accuracy. Forswarm intelligence, an algorithm allows a neural network to use thecollective knowledge repository in addition to the centralized knowledgerepository. Swarm intelligence is supported by the processing of thedata using the neural network of each artificial intelligence modules inthe group. Using an artificial intelligence module with swarmintelligence amplifies the intelligence of each artificial intelligencemodule in the swarm by allowing the artificial intelligence modules tothink together as unified systems. Swarm intelligence is useful formultiple objective problems and dynamic problems that keep changing.

In an embodiment, the information can be proposed to the entire swarmfor decision making, and the shared information is used in combinationto generate the final outcome. When multiple artificial intelligencemodules work in a group, even the smallest changes are shared to allowfor fine tuning, thus making micro changes to the rest of the swarm.

FIG. 8 is a diagram illustrating artificial intelligence modules workingin isolation in accordance with an embodiment. In the FIG. 8, there isno flow of information between artificial intelligence modules 810, 820and 830.

FIGS. 9A and 9B are diagrams illustrating artificial intelligencemodules sharing information in accordance with embodiments.

In FIG. 9A, some knowledge is shared between some artificialintelligence modules but all of the artificial intelligence module donot benefit from the shared knowledge.

In FIG. 9B, information from a single artificial intelligence module 910is shared with each of the artificial intelligence modules. However,information is mostly centralized for all of the artificial intelligencemodules except artificial intelligence module 910. Further, theinformation is processed based on either an individual decision oroverall group decision.

FIG. 10 is a diagram illustrating artificial intelligence modulesfunctioning as a swarm in accordance with an embodiment.

Referring to FIG. 10, information is shared by all of the artificialintelligence modules with no lead artificial intelligence module.

In an embodiment, swarm intelligence can occur via self-organizedinteractions between smaller groups of artificial intelligence modules.If a decision is made, all of the artificial intelligence modules in thesmaller group arrive at the same decision if presented with the sameinput data.

In an embodiment, several groups of artificial intelligence modules workindependently of each other on different target program(s), and thegroups each share the information or decision-making with artificialintelligence modules within their group, but not with artificialintelligence modules in other groups of the swarm. The artificialintelligence modules can work in a small group to achieve maximumefficiency. If some of the artificial intelligence modules in the groupcannot individually achieve a requested task, the group of artificialintelligence modules may collectively be able to complete the requestedtask. In an embodiment, an artificial intelligence module's decisionmaking can be restricted to a small group of the swarm to achievemaximum scalability, robustness, speed and modularity.

It is to be noted that, a small change can result in different grouplevel behavior of the swarm. Each artificial intelligence module has aset of rules to follow, leading to self-organization. Based oninformation input by other artificial intelligence module, theartificial intelligence modules are able to use their own dynamicallycreated rules to complete their task, amplifying the changes in thenetwork propagation.

FIG. 11 illustrates a block diagram of an electronic device inaccordance with an embodiment.

Referring to FIG. 11, electronic device 1100 includes computer 1105,display 1110, and, in some embodiments, one or more I/O devices 1115.

Electronic device 1100 can be a stationary electronic device (such as,for example, a desktop computer) or a portable electronic device (suchas, for example, a laptop, tablet, etc.). Computer 1105 includes bus1120, processor 1125, memory 1130, display interface 1135, one or moreI/O interfaces 1140, 1145 and one or more communication interfaces 1150.Generally, display interface 1135 is coupled to display 1110, I/Ointerface 1140 is coupled to I/O device 1115 using a wired or wirelessconnection, and communication interface 1150 can be connected to antenna(not shown) and coupled to network (not shown) using a wirelessconnection. If electronic device 1100 is a stationary electronic device,communication interface 1150 can be connected to the network using awired or a wireless connection. One of the I/O interfaces 1140, 1145 canbe connected to the antenna.

Bus 1120 is a communication system that transfers data between processor1125, memory 1130, display interface 1135, I/O interfaces 1140,1145, andcommunication interface 1150, as well as other components not depictedin FIG. 11. Power connector 1155 is coupled to bus 1120 and a powersupply (not shown), such as a battery, etc.

Processor 1125 includes one or more general-purpose orapplication-specific microprocessors to perform computation and controlfunctions for computer 1105. Processor 1125 can include a singleintegrated circuit, such as a micro-processing device, or multipleintegrated circuit devices and/or circuit boards working in cooperationto accomplish the functions of processor 1125. In addition, processor1125 can execute computer programs, such as operating system 1160,artificial intelligence module 1165, other applications 1170, or data1175 stored within memory 1130.

Memory 1130 stores information and instructions for execution byprocessor 1125. Memory 1130 can contain various components forretrieving, presenting, modifying, and storing data. For example, memory1130 can store software modules that provide functionality if executedby processor 1125. The modules can include an operating system 1160 thatprovides operating system functionality for computer 1105. The modulescan also include artificial intelligence module 1165 that provides thelearning and processing functions described above. Applications 1170 caninclude other applications that cooperate with artificial intelligencemodule 1165. Data 1175 can include training data of the multipleprogramming languages, information associated with the natural humanlanguage communication, languages semantics, programming languagesreferences, domain specific contexts, programming language contextualtrained data, metadata and other references (such as references requiredfor the communication and to make decisions).

Generally, memory 1130 can include a variety of non-transitorycomputer-readable medium that can be accessed by processor 1125. In thevarious embodiments, memory 1130 can include a volatile medium, anonvolatile medium, both volatile and nonvolatile mediums, a removableand non-removable medium, a communication medium, and a storage medium.A communication medium can include computer readable instructions, datastructures, program modules, or other data in a modulated data signalsuch as a carrier wave or other transport mechanism, and can include anyother form of an information delivery medium known in the art. A storagemedium can include a volatile memory (e.g., random access memory(“RAM”), dynamic RAM (“DRAM”), static RAM (“SRAM”), synchronous dynamicrandom access memory (“SDRAM”)), or a non-volatile memory (e.g., readonly memory (“ROM”), flash memory, cache memory, programmable read-onlymemory (“PROM”), erasable programmable read-only memory (“EPROM”),electrically erasable programmable read-only memory (“EEPROM”)),registers, hard disk, a removable disk, a compact disk read-only memory(“CD-ROM”), or any other form of a storage medium known in the art.

Display interface 1135 is coupled to display 1110.

I/O interfaces 1140,1145 are configured to transmit and/or receive datafrom I/O devices 1115. I/O interfaces 1140,1145 enable connectivitybetween processor 1125 and I/O devices 1115 by encoding data to be sentfrom processor 1125 to I/O devices 1115, and decoding data received fromI/O devices 1115 for processor 1125. Generally, data can be sent overwired and/or a wireless connections. For example, I/O interfaces1140,1145 can include one or more wired communications interfaces, suchas USB or Ethernet, and/or one or more wireless communicationsinterfaces, coupled to one or more antennas, such as WiFi, cellular,BLUETOOTH, cloud-based interface, or similar platforms.

Display 1110 can be a liquid crystal display (LCD) of a laptop, atablet, or a similar device.

Generally, I/O device 1115 is a device configured to provide input tocomputer 1105, and/or output from computer 1105. I/O device 1115 isoperably connected to computer 1105 using either a wireless connectionor a wired connection. I/O device 1115 can include a local processorcoupled to a communication interface that is configured to communicatewith computer 1105 using the wired or wireless connection.

For example, I/O device 1115 can be an input device such as atouchscreen for display 1110, a touchpad, a keypad or keyboard, etc.

I/O device 1115 can be an output device, such as one or more audiospeakers. Processor 1125 can transmit an audio signal to a speaker (I/Odevice 1115) through an audio interface (I/O interface 1140), which inturn outputs audio effects.

According to embodiments of the present invention, extracted input datainformation including of the natural human language and technicaldetails are arranged in the most logical manner. Using a knowledgerepository and this information, a Decision Model gets the appropriatelanguage reference and domain specific trained data. The trained dataconsists of generic-to-domain specific programs from the knowledgerepository. Using the input data, technical details, domain specificprograms, programming language context, collectively, the artificialintelligence module prepares the input data for a neural network. Theneural network determines probable solutions, and an Action Plan API (asimple interface which performs predefined tasks based on input)identifies an action plan for resolving the problems in the input data.Upon execution of the action plan, the input data is transcoded into anew program, which is sent to an individual for review and/or to anexternal source for execution.

The systems and methods of generating a computer program using theartificial intelligence module according to embodiments reduces oreliminates the time and/or effort generally spent by an individual toresolve and perform repetitive programming tasks. The artificialintelligence module improves productivity by resolving and performingprogramming tasks more quickly than the individual.

Several embodiments have been specifically illustrated and/or described.However, it will be appreciated that modifications and variations of thedisclosed embodiments are covered by the above teachings and within thepurview of the appended claims without departing from the spirit andintended scope of the invention.

What is claimed is:
 1. A method of generating a computer program usingartificial intelligence, the method comprising: generating, at anartificial intelligence module, logic programming by analyzing naturallanguage in sample input data received from an external source, thesample input data resulting in a known output; receiving select inputdata, the select input data including select natural language or acoding instruction including the select natural language; generatingcontext data by processing, using an artificial neural network of theartificial intelligence module, the select natural language; selectingthe logic programming based on the context data; determining, at theartificial intelligence module, a computing instruction for the selectinput data using the logic programming; and generating the computerprogram, the computer program including the computing instruction. 2.The method of claim 1, further comprising: storing the logic programmingin a knowledge repository; receiving process input data, the processinput data being a result of the computing instruction, and the processinput data including the select natural language or the codinginstruction including the select natural language; generating processcontext data by processing, at the artificial intelligence module, theselect natural language in the process input data; generating additionallogic programming based on a comparison between the process context dataand the context data; and storing the additional logic programming inthe knowledge repository.
 3. The method of claim 1, further comprising:storing the logic programming in a knowledge repository; and receivingsubsequent input data, the subsequent input data including the selectnatural language or the coding instruction including the select naturallanguage, and the subsequent input data being different from the selectinput data; generating subsequent context data by processing, at theartificial intelligence module, the select natural language in thesubsequent input data; retrieving the logic programming from theknowledge repository based on a comparison between the subsequentcontext data and the context data; and determining, at the artificialintelligence module, a subsequent computing instruction for thesubsequent input data using the logic programming; and updating thecomputer program to include the subsequent computing instruction.
 4. Themethod of claim 1, wherein the select input data is encoded in a firstlogic programming language, and the logic programming is encoded in asecond logic programming language, the second logic programming languagebeing different than the first logic programming language.
 5. The methodof claim 1, wherein the generating of the context data includes creatingmetadata for the select input data by performing, using a naturallanguage processing module, at least one of sentiment analysis, sentencerecognition, relationship extraction or language detection; andgenerating the context data using the metadata.
 6. The method of claim1, further comprising: storing the logic programming in a knowledgerepository; receiving initial input data, the initial input dataincluding natural language or a coding instruction including the naturallanguage; generating context data by processing, at the artificialintelligence module, the natural language; identifying select data inthe context data, the select data including the natural language or thecoding instruction including the natural language; generating selectcontext data by processing, at the artificial intelligence module, thenatural language in the select data; generating, at the artificialintelligence module, select logic programming for the select contextdata, the generating of the select logic programming being based on thelogic programming; determining, at the artificial intelligence module, aselect computing instruction for the select data using the select logicprogramming; and generating a select computer program, the selectcomputer program including the select computing instruction.
 7. Themethod of claim 6, further comprising: storing the select logicprogramming in the knowledge repository; and receiving subsequent inputdata, the subsequent input data including the natural language or thecoding instruction including the natural language, and the subsequentinput data being different from the select data; generating subsequentcontext data by processing, at the artificial intelligence module, thenatural language in the subsequent input data; retrieving the selectlogic programming from the knowledge repository based on a comparisonbetween the subsequent context data and the select context data; anddetermining, at the artificial intelligence module, a subsequentcomputing instruction for the subsequent input data using the selectlogic programming; and updating the select computer program to includethe subsequent computing instruction.
 8. The method of claim 6, whereinthe initial input data and the select data are encoded in a first logicprogramming language, and the logic programming is encoded in a secondlogic programming language, the second logic programming language beingdifferent than the first logic programming language.
 9. A system forgenerating a computer program using artificial intelligence, the systemcomprising: a processor; and a memory storing a program for execution bythe processor, the program including instructions for generating, at anartificial intelligence module, logic programming by analyzing naturallanguage in sample input data received from an external source, thesample input data resulting in a known output; receiving select inputdata, the select input data including select natural language or acoding instruction including the select natural language; generatingcontext data by processing, at the artificial intelligence module, theselect natural language; selecting the logic programming based on thecontext data; determining, at the artificial intelligence module, acomputing instruction for the select input data using the logicprogramming; and generating the computer program, the computer programincluding the computing instruction.
 10. The system of claim 9, whereinthe program includes instructions for: storing the logic programming ina knowledge repository; receiving process input data, the process inputdata being a result of the computing instruction, and the process inputdata including the select natural language or the coding instructionincluding the select natural language; generating process context databy processing, at the artificial intelligence module, the select naturallanguage in the process input data; generating additional logicprogramming based on a comparison between the process context data andthe context data; and storing the additional logic programming in theknowledge repository.
 11. The system of claim 9, wherein the programincludes instructions for: storing the logic programming in a knowledgerepository; and receiving subsequent input data, the subsequent inputdata including the select natural language or the coding instructionincluding the select natural language, and the subsequent input databeing different from the select input data; generating subsequentcontext data by processing, at the artificial intelligence module, theselect natural language in the subsequent input data; retrieving thelogic programming from the knowledge repository based on a comparisonbetween the subsequent context data and the context data; anddetermining, at the artificial intelligence module, a subsequentcomputing instruction for the subsequent input data using the logicprogramming; and updating the computer program to include the subsequentcomputing instruction.
 12. The system of claim 9, wherein the selectinput data is encoded in a first logic programming language, and thelogic programming is encoded in a second logic programming language, thesecond logic programming language being different than the first logicprogramming language.
 13. The system of claim 9, wherein the generatingof the context data includes creating metadata for the select input databy performing, using a natural language processing module, at least oneof sentiment analysis, sentence recognition, relationship extraction orlanguage detection; and generating the context data using the metadata.14. The system of claim 9, wherein the program includes instructionsfor: storing the logic programming in a knowledge repository; receivinginitial input data, the initial input data including natural language ora coding instruction including the natural language; generating contextdata by processing, at an the artificial intelligence module, thenatural language; identifying select data in the context data, theselect data including the natural language or the instruction includingthe natural language; generating select context data by processing, atthe artificial intelligence module, the natural language in the selectdata; generating, at the artificial intelligence module, select logicprogramming for the select context data, the generating of the selectlogic programming being based on the logic programming; determining, atthe artificial intelligence module, a select computing instruction forthe select data using the select logic programming; and generating aselect computer program, the select computer program including theselect computing instruction.
 15. The system of claim 14, wherein theinstructions further comprise: storing the select logic programming inthe knowledge repository; and receiving subsequent input data, thesubsequent input data including the natural language or the codinginstruction including the natural language, and the subsequent inputdata being different from the select data; generating subsequent contextdata by processing, at the artificial intelligence module, the naturallanguage in the subsequent input data; retrieving the select logicprogramming from the knowledge repository based on a comparison betweenthe subsequent context data and the select context data; anddetermining, at the artificial intelligence module, a subsequentcomputing instruction for the subsequent input data using the selectlogic programming; and updating the select computer program to includethe subsequent computing instruction.
 16. The system of claim 14,wherein the initial input data and the select data are encoded in afirst logic programming language, and the logic programming is encodedin a second logic programming language, the second logic programminglanguage being different than the first logic programming language. 17.A non-transitory computer readable medium having instructions embodiedthereon that, when executed by a processor, cause the processor toperform operations comprising: generating, at an artificial intelligencemodule, logic programming by analyzing natural language in sample inputdata received from an external source, the sample input data resultingin a known output; receiving select input data, the select input dataincluding select natural language or a coding instruction including theselect natural language; generating context data by processing, at theartificial intelligence module, the select natural language; selectingthe logic programming based on the context data; determining, at theartificial intelligence module, a computing instruction for the selectinput data using the logic programming; and generating a computerprogram, the computer program including the computing instruction. 18.The non-transitory computer readable medium of claim 17, wherein theoperations further comprise: storing the logic programming in aknowledge repository; receiving process input data, the process inputdata being a result of the computing instruction, and the process inputdata including the select natural language or the coding instructionincluding the select natural language; generating process context databy processing, at the artificial intelligence module, the select naturallanguage in the process input data; generating additional logicprogramming based on a comparison between the process context data andthe context data; and storing the additional logic programming in theknowledge repository.
 19. The non-transitory computer readable medium ofclaim 17, wherein the operations further comprise: storing the logicprogramming in a knowledge repository; and receiving subsequent inputdata, the subsequent input data including the select natural language orthe coding instruction including the select natural language, and thesubsequent input data being different from the select input data;generating subsequent context data by processing, at the artificialintelligence module, the select natural language in the subsequent inputdata; retrieving the logic programming from the knowledge repositorybased on a comparison between the subsequent context data and thecontext data; and determining, at the artificial intelligence module, asubsequent computing instruction for the subsequent input data using thelogic programming; and updating the computer program to include thesubsequent computing instruction.
 20. The non-transitory computerreadable medium of claim 17, wherein the select input data is encoded ina first logic programming language, and the logic programming is encodedin a second logic programming language, the second logic programminglanguage being different than the first logic programming language. 21.The non-transitory computer readable medium of claim 17, wherein thegenerating of the context data includes creating metadata for the selectinput data by performing, using a natural language processing module, atleast one of sentiment analysis, sentence recognition, relationshipextraction or language detection; and generating the context data usingthe metadata.
 22. The non-transitory computer readable medium of claim17, wherein the operations further comprise: storing the logicprogramming in a knowledge repository; receiving initial input data, theinitial input data including natural language or a coding instructionincluding the natural language; generating context data by processing,at the artificial intelligence module, the natural language; identifyingselect data in the context data, the select data including the naturallanguage or the coding instruction including the natural language;generating select context data by processing, at the artificialintelligence module, the natural language in the select data;generating, at the artificial intelligence module, select logicprogramming for the select context data, the generating of the selectlogic programming being based on the logic programming; determining, atthe artificial intelligence module, a select computing instruction forthe select data using the select logic programming; and generating aselect computer program, the select computer program including theselect computing instruction.
 23. The non-transitory computer readablemedium of claim 22, wherein the operations further comprise: storing thelogic programming in the knowledge repository; and receiving subsequentinput data, the subsequent input data including the natural language orthe coding instruction including the natural language, and thesubsequent input data being different from the select data; generatingsubsequent context data by processing, at the artificial intelligencemodule, the natural language in the subsequent input data; retrievingthe select logic programming from the knowledge repository based on acomparison between the subsequent context data and the select contextdata; and determining, at the artificial intelligence module, asubsequent computing instruction for the subsequent input data using theselect logic programming; and updating the select computer program toinclude the subsequent computing instruction.
 24. The non-transitorycomputer readable medium of claim 22, wherein the initial input data andthe select data are encoded in a first logic programming language, andthe logic programming is encoded in a second logic programming language,the second logic programming language being different than the firstlogic programming language.